#include <myhead.h>
int main(int argc, const char *argv[])
{
	int p[2]={0,0};
	pipe(p);
	pid_t pid=fork();
	if(pid>0)
	{
		close(p[0]);
		double t[5]={0},n=0;
		while(1)
		{
			printf("请输入边长个数：");
			scanf("%d",&t[0]);
			getchar();
			write(p[1],&t[0],4);
			for(int i=0;i<t[0];i++)
			{
				printf("请输入第%d个边长数据：",i+1);
				scanf("%d",&t[i+1]);
				while(getchar()!=10);
				write(p[1],&t[i+1],4);
			}
		}
		wait(0);
		return 0;
	}
	else if(pid==0)
	{
		close(p[1]);
		int t[5]={0},n=0;
		while(1)
		{
			read(p[0],&t[0],4);
			for(int i=0;i<t[0];i++)
				read(p[0],&t[i+1],4);
			if(t[0]==3)
			{
				int p=(t[1]+t[2]+t[3])/3;
				t[4]=sqrt(p*(p-t[1])*(p-t[2])*(p-t[3]));
				printf("面积为%d\n",t[4]);
			}
			else if(t[0]==2)
			{
				p[4]=t[1]*t[2];
				printf("面积为%d\n",p[4]);

			}
		}
		exit(0);
	//	execl("./005.c","005.out",NULL);
	}
	return 0;
}
